package com.grow.greenhouse.domain;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.lang.reflect.Field;
import java.util.Date;
import lombok.Data;

/**
 * 用户设置数据阈值
 * @TableName userthrehold
 */
@TableName(value ="userthreshold")
@Data
public class Userthreshold implements Serializable {
    /**
     * 
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 这套阈值所属的用户id
     */
    private Long userId;

    /**
     * 作物名称
     */
    private String shedName;

    /**
     * 土壤温度 json列表（左最小值，中预设值，右最大值）
     */
    private String soilTemp;

    /**
     * 土壤湿度 json列表
     */
    private String soilMoisture;

    /**
     * 空气温度 json列表
     */
    private String airTemp;

    /**
     * 空气湿度
     */
    private String airMoisture;

    /**
     * 光照值
     */
    private String illumination;

    /**
     * 二氧化碳值 json列表
     */
    private String carbonDioxide;

    /**
     * PH值 json列表
     */
    private String PHvalue;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除
     */
    @TableLogic
    private Integer isDelete;

    public String getUserthreholdByIndicator(String key) {
        // 获取Userthrehold类的Class对象
        Class<?> clazz = this.getClass();

        try{
            // 获取指定属性的Field对象
            Field field = clazz.getDeclaredField(key);
            // 确保私有属性也可访问
            field.setAccessible(true);

            // 获取当前对象在该属性上的值
            Object value = field.get(this);
            return value.toString();
        }catch (Exception e) {
            throw new RuntimeException(e);
        }

    }

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}